package proxy.v3;

import net.sf.cglib.proxy.Enhancer;

public class ProxyTest {
    /**
     * JDK动态代理拥有局限性，
     * 那就是必须面向接口编程，没有接口就无法实现代理，
     * 我们也不可能为了代理而为每个需要实现代理的类强行添加毫无意义的接口，
     * 这时我们需要Cglib，这种依靠继承来实现动态代理的方式，不再要求我们必须要有接口。
     * @param args
     */
    public static void main(String[] args){
        Enhancer enchancer = new Enhancer();//字节码增强器
        enchancer.setSuperclass(User.class);//设置被代理类为父类
        enchancer.setCallback(new UserInterceptor());//设置回调
        User user = (User)enchancer.create();//创建代理实例
        user.eat("葡萄");
    }
}